// 处理路由守卫
import router from '@/router'
import store from '@/store'

// 定义白名单
const whiteList = ['/login']
/**
  * @param {*} to 要到哪里去
  * @param {*} from  从哪里来
  * @param {*} next  是否要去
*/

router.beforeEach(async (to, from, next) => {
  if (store.getters.token) {
    // 1.用户已登录则不允许进入login
    if (to.path === '/login') {
      next('/')
    } else {
      // 判断用户资料是否存在，如果不存在，则获取用户信息
      if (!store.getters.hasUserInfo) {
        // 触发获取用户信息的 action
        await store.dispatch('user/getUserInfo')
      }
      next()
    }
  } else {
    // 2.用户未登录，只允许进入登录页
    if (whiteList.indexOf(to.path) > -1) {
      next()
    } else {
      next('/login')
    }
  }
})
